package message

const (
	LoginMesType            = "LoginMes"
	LoginResMegType         = "LoginResMeg"
	RegisterMegType         = "RegisterMeg"
	RegisterResMegTYpe      = "RegisterResMeg"
	NotifyUserStatusMesType = "NotifyUserStatusMes"
	SmsMesType              = "SmsMes"
)

// 定义几个用户在线状态
const (
	UserOnline = iota
	UserOffline
	UserBusyStatus
)

type Message struct {
	Type string `json:"type"` //消息的类型  首字母大写是为了在包外引用，但序列化一般使用小写，所以用个tag
	Data string `json:"data"` //消息的内容
}

// 定义两个消息，客户端发送的登录消息和服务端回的消息
// 客户端发送的登录消息
type LoginMes struct {
	UserId   int    `json:"userId"`   // 用户id
	UserPwd  string `json:"userPwd"`  // 用户密码
	UserName string `json:"userName"` // 用户名
}

// 服务端回的消息
type LoginResMeg struct {
	Code    int    `json:"code"`    // 返回的状态码  500表示未注册  200表示登录成功
	UserIds []int  `json:"userIds"` //保存用户id的切片
	Error   string `json:"err"`     // 返回i的错误信息
}

// 注册信息
type RegisterMeg struct {
	User User `json:"user"`
}

type RegisterResMeg struct {
	Code  int    `json:"code"` // 返回的状态码  400表示该用户已占用  200表示注册成功
	Error string `json:"err"`  // 返回i的错误信息
}

// 为了配合服务器推送用户状态变化
type NotifyUserStatusMes struct {
	UserId int `json:"userId"`
	Status int `json:"status"`
}

// 增加一个SmsMes
type SmsMes struct {
	Content string `json:"content"` // 发送的内容
	User
}
